package com.ruoyi.source.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.ofld.domain.CarInfo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 货物订单对象 goods_order
 *
 * @author lml
 * @date 2025-01-07
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class GoodsOrder extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 订单号
     */
    private Long id;

    /**
     * 货物名称
     */
    @Excel(name = "货物名称")
    private String goodsName;

    /**
     * 货物重量
     */
    @Excel(name = "货物重量")
    private Long goodsWeight;

    /**
     * 起点
     */
    @Excel(name = "起点")
    private String startLocation;

    /**
     * 目的地
     */
    @Excel(name = "目的地")
    private String endLocation;

    /**
     * 车辆类型
     */
    @Excel(name = "车辆类型")
    private Long carType;

    /**
     * 车辆长度
     */
    @Excel(name = "车辆长度")
    private Long carLength;

    /**
     * 货物体积
     */
    private Long goodsSize;

    /**
     * 装车时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "装车时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date loadTime;

    /**
     * 卸车时间
     */
    private Date unloadTime;

    /**
     * 运输费用
     */
    @Excel(name = "运输费用")
    private BigDecimal shipPrice;

    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remarks;

    /**
     * 订单状态
     */
    @Excel(name = "订单状态")
    private Long orderStatus;

    /**
     * 里程
     */
    private BigDecimal mileage;

    /**
     * 运输类型
     */
    private Long shipType;

    /**
     * 装货人id
     */
    private Long loderId;

    /**
     * 卸货人id
     */
    private Long unloderId;


    /**
     * 包装方式表id
     */
    private Long packId;

    /**
     * 支付分类表id
     */
    private Long paymentTypeId;

    /**
     * 车辆信息表id
     */
    @Excel(name = "车辆信息表id")
    private Long infoId;

    /**
     * 用户表id
     */
    @Excel(name = "用户表id")
    private Long userId;

    /**
     * 运货人表关系映射
     */
    private FreightInfo freightInfo;

    /**
     * 包装方式表表关系映射
     */
    private PackType packType;

    /**
     * 支付分类表表关系映射
     */
    private PaymentType paymentType;

    /**
     * 系统用户表关系映射
     */
    private SysUser sysUser;
    private String nickName;

    private Integer status;

    /**
     * （车主）用户表信息
     */
    private CarInfo carInfo;

    /**
     * 车辆信息表关系映射
     */
    private Long carerId;
    /**
     * 货物类型表id
     */
    private Long goodsTypeId;
    /**
     * 货物类型表关系映射
     */
    private  GoodsType goodsType;

    /**
     * 支付分类表别名列
     */
    private String payTypeName;
    /**
     * 逻辑删除标志：0正常，1删除
     */
    private Long del;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setLoderId(Long loderId) {
        this.loderId = loderId;
    }

    public Long getLoderId() {
        return loderId;
    }

    public void setUnloderId(Long unloderId) {
        this.unloderId = unloderId;
    }

    public Long getUnloderId() {
        return unloderId;
    }

    public void setStartLocation(String startLocation) {
        this.startLocation = startLocation;
    }

    public String getStartLocation() {
        return startLocation;
    }

    public void setEndLocation(String endLocation) {
        this.endLocation = endLocation;
    }

    public String getEndLocation() {
        return endLocation;
    }
    public void setPayTypeName(String payTypeName) {
        this.payTypeName = payTypeName;
    }

    public String getPayTypeName() {
        return payTypeName;
    }
    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public String getNickName() {
        return nickName;
    }

    public void setCarInfo(CarInfo carInfo) {
        this.carInfo = carInfo;
    }

    public CarInfo getCarInfo() {
        return carInfo;
    }

    public void setPackType(PackType packType) {
        this.packType = packType;
    }

    public PackType getPackType() {
        return packType;
    }

    public void setPaymentType(PaymentType paymentType) {
        this.paymentType = paymentType;
    }

    public PaymentType getPaymentType() {
        return paymentType;
    }

    public SysUser getSysUser() {
        return sysUser;
    }

    public void setSysUser(SysUser sysUser) {
        this.sysUser = sysUser;
    }

    public void setFreightInfo(FreightInfo freightInfo) {
        this.freightInfo = freightInfo;
    }

    public FreightInfo getFreightInfo() {
        return freightInfo;
    }


    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsWeight(Long goodsWeight) {
        this.goodsWeight = goodsWeight;
    }

    public Long getGoodsWeight() {
        return goodsWeight;
    }

    public void setCarType(Long carType) {
        this.carType = carType;
    }

    public Long getCarType() {
        return carType;
    }

    public void setCarLength(Long carLength) {
        this.carLength = carLength;
    }

    public Long getCarLength() {
        return carLength;
    }

    public void setGoodsSize(Long goodsSize) {
        this.goodsSize = goodsSize;
    }

    public Long getGoodsSize() {
        return goodsSize;
    }

    public void setLoadTime(Date loadTime) {
        this.loadTime = loadTime;
    }

    public Date getLoadTime() {
        return loadTime;
    }

    public void setUnloadTime(Date unloadTime) {
        this.unloadTime = unloadTime;
    }

    public Date getUnloadTime() {
        return unloadTime;
    }

    public void setShipPrice(BigDecimal shipPrice) {
        this.shipPrice = shipPrice;
    }

    public BigDecimal getShipPrice() {
        return shipPrice;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setOrderStatus(Long orderStatus) {
        this.orderStatus = orderStatus;
    }

    public Long getOrderStatus() {
        return orderStatus;
    }

    public void setMileage(BigDecimal mileage) {
        this.mileage = mileage;
    }

    public BigDecimal getMileage() {
        return mileage;
    }

    public void setShipType(Long shipType) {
        this.shipType = shipType;
    }

    public Long getShipType() {
        return shipType;
    }


    public void setPackId(Long packId) {
        this.packId = packId;
    }

    public Long getPackId() {
        return packId;
    }

    public void setPaymentTypeId(Long paymentTypeId) {
        this.paymentTypeId = paymentTypeId;
    }

    public Long getPaymentTypeId() {
        return paymentTypeId;
    }

    public void setInfoId(Long infoId) {
        this.infoId = infoId;
    }

    public Long getInfoId() {
        return infoId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setDel(Long del) {
        this.del = del;
    }

    public Long getDel() {
        return del;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("goodsName", getGoodsName())
                .append("goodsWeight", getGoodsWeight())
                .append("carType", getCarType())
                .append("carLength", getCarLength())
                .append("goodsSize", getGoodsSize())
                .append("createTime", getCreateTime())
                .append("loadTime", getLoadTime())
                .append("unloadTime", getUnloadTime())
                .append("shipPrice", getShipPrice())
                .append("remarks", getRemarks())
                .append("orderStatus", getOrderStatus())
                .append("mileage", getMileage())
                .append("shipType", getShipType())
                .append("loderId", getLoderId())
                .append("unloderId", getUnloderId())
                .append("packId", getPackId())
                .append("paymentTypeId", getPaymentTypeId())
                .append("infoId", getInfoId())
                .append("userId", getUserId())
                .append("del", getDel())
                .toString();
    }
}
